package com.ruoyi.web.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.web.domain.mes.MesOrder;
import com.ruoyi.web.domain.mes.MesOrderBreed;
import com.ruoyi.web.domain.mes.MesOrderNeiwen;
import com.ruoyi.web.domain.mes.MesOrderProduct;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface MesOrderMapper extends BaseMapper<MesOrder> {
    /**
     * 订单管理 -- 查询
     * @Date: 2024年1月9日
     * @Auth: 张恒
     */
    List<MesOrder> selectMesOrder(MesOrder mesOrder);
    MesOrder selectMaxPubNo();
    List<MesOrder> selectPubNo(MesOrder mesOrder);

    List<MesOrder> selectBookCode(MesOrder mesOrder);
    /**
     * 订单管理 -- 过滤封面或者内文
     * @Date: 2024年2月28日
     * @Auth: 张恒
     */
    List<MesOrder> selectMesOrderMakeUp(MesOrder mesOrder);

    /**
     * 订单管理 -- 品种查询
     * @Date: 2024年1月9日
     * @Auth: 张恒
     */
    List<MesOrderBreed> selectMesOrderBreed(MesOrderBreed mesOrderBreed);

    /**
     * 订单管理 -- 产品查询
     * @Date: 2024年1月9日
     * @Auth: 张恒
     */
    List<MesOrderProduct> selectMesOrderProduct(MesOrderProduct mesOrderProduct);

    /**
     * 订单管理 -- 内文查询
     * @Date: 2024年1月9日
     * @Auth: 张恒
     */
    List<MesOrderNeiwen> selectMesOrderNeiwen(MesOrderNeiwen mesOrderNeiwen);

    /**
     * 订单管理 -- 新增
     * @Date: 2024年1月9日
     * @Auth: 张恒
     */
    void insertMesOrder(MesOrder mesOrder);

    /**
     * 订单管理 -- 品种新增
     * @Date: 2024年1月9日
     * @Auth: 张恒
     */
    void insertMesOrderBreed(MesOrderBreed mesOrderBreed);

    /**
     * 订单管理 -- 产品新增
     * @Date: 2024年1月9日
     * @Auth: 张恒
     */
    void insertMesOrderProduct(@Param("orderProducts") List<MesOrderProduct> orderProducts);

    /**
     * 订单管理 -- 内文新增
     * @Date: 2024年1月9日
     * @Auth: 张恒
     */
    void insertMesOrderNeiwen(MesOrderNeiwen mesOrderNeiwen);

    /**
     * 订单管理 -- 修改
     * @Date: 2024年1月9日
     * @Auth: 张恒
     */
    void updateMesOrder(MesOrder mesOrder);

    /**
     * 订单管理 -- 品种修改
     * @Date: 2024年1月9日
     * @Auth: 张恒
     */
    void updateOrderBreed(@Param("orderBreeds") List<MesOrderBreed> orderBreeds);

    /**
     * 订单管理 -- 产品修改
     * @Date: 2024年1月9日
     * @Auth: 张恒
     */
    void updateMesOrderProduct(@Param("orderProducts") List<MesOrderProduct> orderProducts);

    /**
     * 订单管理 -- 内文修改
     * @Date: 2024年1月9日
     * @Auth: 张恒
     */
    void updateMesOrderNeiwen(@Param("orderNeiwens") List<MesOrderNeiwen> orderNeiwens);

    /**
     * 订单管理 -- 删除
     * @Date: 2024年1月9日
     * @Auth: 张恒
     */
    void delMesOrder(MesOrder mesOrder);

    /**
     * 订单管理 -- 品种删除
     * @Date: 2024年1月9日
     * @Auth: 张恒
     */
    void delOrderBreed(MesOrderBreed orderBreed);

    void delOrderBreedNotId(List<MesOrderBreed> orderBreed);


    /**
     * 订单管理 -- 品种删除
     * @Date: 2024年1月9日
     * @Auth: 张恒
     */
    void delOrderBreedByPid(MesOrderBreed orderBreed);

    /**
     * 订单管理 -- 产品删除
     * @Date: 2024年1月9日
     * @Auth: 张恒
     */
    void delMesOrderProduct(MesOrderProduct orderProduct);

    /**
     * 订单管理 -- 内文删除
     * @Date: 2024年1月9日
     * @Auth: 张恒
     */
    void delMesOrderNeiwen(MesOrderNeiwen orderNeiwen);
}
